package com.ruoyi.system.mapper;

import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;
import com.ruoyi.system.domain.WaterQualityData;

/**
 * 水质数据Mapper接口
 */
public interface WaterQualityDataMapper 
{
    /**
     * 查询水质数据列表
     * 
     * @param waterQualityData 水质数据
     * @return 水质数据集合
     */
    public List<WaterQualityData> selectWaterQualityDataList(WaterQualityData waterQualityData);
    
    /**
     * 根据监测点ID查询水质数据
     * 
     * @param pointId 监测点ID
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 水质数据集合
     */
    public List<WaterQualityData> selectWaterQualityDataByPointId(@Param("pointId") Long pointId, @Param("startTime") String startTime, @Param("endTime") String endTime);
    
    /**
     * 查询所有监测点的水质数据
     * 
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 水质数据集合
     */
    public List<WaterQualityData> selectAllWaterQualityData(@Param("startTime") String startTime, @Param("endTime") String endTime);
    
    /**
     * 查询各监测点最新的水质数据
     * 
     * @return 水质数据集合
     */
    public List<WaterQualityData> selectLatestWaterQualityData();
    
    /**
     * 查询水质指标的时间变化数据
     * 
     * @param pointId 监测点ID，可为null表示查询所有监测点
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 时间和水质指标值的映射集合
     */
    public List<Map<String, Object>> selectWaterQualityTimeData(@Param("pointId") Long pointId, @Param("startTime") String startTime, @Param("endTime") String endTime);
    
    /**
     * 查询不同水体的污染程度对比数据
     * 
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 监测点和水质指标值的映射集合
     */
    public List<Map<String, Object>> selectWaterQualityComparisonData(@Param("startTime") String startTime, @Param("endTime") String endTime);
}